总共包括三个文件:2021年机关员工(子女)名单.exe、name1.jpg、name2.jpg。2021年机关员工(子女)名单.exe:程序是golang编译的,分析起来有点困难。所以没有进行分析,只是看了一下会有什么行为。
name2.jpg为dll导出了InitBugReport函数,且该函数存在异或解密shellcode的行为。
开启Fake-ng,process monitor和process explorer进行行为监控。在虚拟机中执行程序之后会将nam1.jpg保存为yyexternal.exe。
name2.jpg会保存为crashreport.dll。之后yyexternal会动态加载crashreport.dll并调用InitBugReport。加载shellcode的功能都在nam2.jpg(其实是dll)中所以主要分析这个文件。
第一:将byte_100277A8开始偏移%6==3地址上的内容复制到shellcode中
第二:将shellcode循环与!@ASDasd3#@异或解密
第三:将解密后的shellcode复制到VirtualAlloc地址并跳转执行。
这里选择了第二种方法,修改文件名为name2.dll,用OD打开dll,在强制修改EIP为InitBugReport。将shellcode保存下来。
最关键的点是偏移0x66会将遍历到的函数hash与目标hash进行比较,如果相关会在0x86处调用。在0x86下断点可以知道shellcode调用的所有函数第一步调用LoadLibraryA("wininet")第二步调用InternetOpenA连接27.152.180.223的80端口
第四次调用 HttpOpenRequestsA 获取/W9ff。
第五次调用HttpSendRequestA 使用指定UA去发生请求。因为网站的/W9ff已经没了,所以会请求失败,调用ExitProcess。为了猜测下载文件的作用是什么。可以修改跳转指令。看看后续操作。如果请求失败就会调用ExitProcess。修改标志位Z=0。
最后跳转到了新的shellcode执行代码。因为前面都是强制修改了标志位,所以实际并没有shellcode读入。shellcode应该是脚本生成的(类似这个https://gist.github.com/jdferrell3/4db966da06f4fa77816a54d802aca0f8)
样本应该是护网的钓鱼文件。
解压密码为www.pediy.com
看雪ID:tobeabel
https://bbs.pediy.com/user-home-755584.htm
*本文由看雪论坛 tobeabel 原创,转载请注明来自看雪社区。